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
 | 
			
		||||
#:  * `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.
 | 
			
		||||
 | 
			
		||||
require "fileutils"
 | 
			
		||||
require "tap"
 | 
			
		||||
 | 
			
		||||
module Homebrew
 | 
			
		||||
  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
 | 
			
		||||
      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"
 | 
			
		||||
 | 
			
		||||
@ -659,6 +659,7 @@ module Homebrew
 | 
			
		||||
        test "brew", "tests", *tests_args
 | 
			
		||||
        test "brew", "tests", "--no-compat"
 | 
			
		||||
        test "brew", "readall", "--syntax"
 | 
			
		||||
        test "brew", "tests", "--official-cmd-taps"
 | 
			
		||||
      else
 | 
			
		||||
        test "brew", "readall", "--aliases", @tap.name
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
@ -9,6 +9,7 @@ require "utils"
 | 
			
		||||
require "exceptions"
 | 
			
		||||
require "set"
 | 
			
		||||
require "rbconfig"
 | 
			
		||||
require "official_taps"
 | 
			
		||||
 | 
			
		||||
ARGV.extend(HomebrewArgvExtension)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -15,4 +15,10 @@ OFFICIAL_TAPS = %w[
 | 
			
		||||
  tex
 | 
			
		||||
  versions
 | 
			
		||||
  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)
 | 
			
		||||
  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)
 | 
			
		||||
    args_pretty = args.join(" ").gsub(TEST_TMPDIR, "@TMPDIR@")
 | 
			
		||||
    test_pretty = "#{self.class.name}\##{name}.#{@cmd_id_index += 1}"
 | 
			
		||||
@ -668,4 +674,35 @@ class IntegrationCommandTests < Homebrew::TestCase
 | 
			
		||||
  ensure
 | 
			
		||||
    desc_cache.unlink
 | 
			
		||||
  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
 | 
			
		||||
 | 
			
		||||
@ -94,14 +94,8 @@ begin
 | 
			
		||||
    exit Homebrew.failed? ? 1 : 0
 | 
			
		||||
  else
 | 
			
		||||
    require "tap"
 | 
			
		||||
    possible_tap = case cmd
 | 
			
		||||
    when "brewdle", "brewdler", "bundle", "bundler"
 | 
			
		||||
      Tap.fetch("Homebrew", "bundle")
 | 
			
		||||
    when "cask"
 | 
			
		||||
      Tap.fetch("caskroom", "cask")
 | 
			
		||||
    when "services"
 | 
			
		||||
      Tap.fetch("Homebrew", "services")
 | 
			
		||||
    end
 | 
			
		||||
    possible_tap = OFFICIAL_CMD_TAPS.find { |_, cmds| cmds.include?(cmd) }
 | 
			
		||||
    possible_tap = Tap.fetch(possible_tap.first) if possible_tap
 | 
			
		||||
 | 
			
		||||
    if possible_tap && !possible_tap.installed?
 | 
			
		||||
      brew_uid = HOMEBREW_BREW_FILE.stat.uid
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user