diff options
| author | Mike McQuaid | 2016-09-13 13:25:33 +0100 |
|---|---|---|
| committer | Mike McQuaid | 2016-09-13 13:25:33 +0100 |
| commit | 054b1a8f73de3147f4fa0e5883e4dfa2867b801d (patch) | |
| tree | 9000f7becf397d79098fdb7cfe2a7bb024643595 /Library | |
| parent | 8e9a4b6e585dbc08f500f352dc3ad3527d46844a (diff) | |
| download | brew-054b1a8f73de3147f4fa0e5883e4dfa2867b801d.tar.bz2 | |
test-bot: fix test default formula handling.
Move the test default formula handling to after all the other formulae
additions are so it'll only be added if no formulae are detected
already in a PR.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/dev-cmd/test-bot.rb | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/Library/Homebrew/dev-cmd/test-bot.rb b/Library/Homebrew/dev-cmd/test-bot.rb index 4168475f4..ed803d7fc 100644 --- a/Library/Homebrew/dev-cmd/test-bot.rb +++ b/Library/Homebrew/dev-cmd/test-bot.rb @@ -62,8 +62,8 @@ #: If `--coverage` is passed, generate coverage report and send it to #: Coveralls. #: -#: If `--test-default-formula` is passed, use a default testing formula if -#: no formulae are otherwise found. +#: If `--test-default-formula` is passed, use a default testing formula +#: when not building a tap and no other formulae are specified. #: #: If `--ci-master` is passed, use the Homebrew master branch CI #: options. @@ -271,14 +271,11 @@ module Homebrew @tap = options[:tap] @repository = @tap ? @tap.path : HOMEBREW_REPOSITORY @skip_homebrew = options.fetch(:skip_homebrew, false) - @test_default_formula = options.fetch(:test_default_formula, false) if quiet_system "git", "-C", @repository.to_s, "rev-parse", "--verify", "-q", argument @hash = argument elsif url_match = argument.match(HOMEBREW_PULL_OR_COMMIT_URL_REGEX) @url = url_match[0] - elsif @test_default_formula - @formulae = [argument] elsif canonical_formula_name = safe_formula_canonical_name(argument) @formulae = [canonical_formula_name] else @@ -386,7 +383,7 @@ module Homebrew @name = "#{diff_start_sha1}-#{diff_end_sha1}" end # Handle formulae arguments being passed on the command-line e.g. `brew test-bot wget fish`. - elsif @formulae && !@formulae.empty? + elsif !@formulae.empty? @name = "#{@formulae.first}-#{diff_end_sha1}" diff_start_sha1 = diff_end_sha1 # Handle a hash being passed on the command-line e.g. `brew test-bot 1a2b3c`. @@ -423,11 +420,20 @@ module Homebrew return unless diff_start_sha1 != diff_end_sha1 return if @url && steps.last && !steps.last.passed? - return unless @tap - formula_path = @tap.formula_dir.to_s - @added_formulae += diff_formulae(diff_start_sha1, diff_end_sha1, formula_path, "A") - @modified_formula += diff_formulae(diff_start_sha1, diff_end_sha1, formula_path, "M") + if @tap + formula_path = @tap.formula_dir.to_s + @added_formulae += diff_formulae(diff_start_sha1, diff_end_sha1, formula_path, "A") + @modified_formula += diff_formulae(diff_start_sha1, diff_end_sha1, formula_path, "M")\ + elsif @formulae.empty? && ARGV.include?("--test-default-formula") + # Build the default test formula. + HOMEBREW_CACHE_FORMULA.mkpath + testbottest = "#{HOMEBREW_LIBRARY}/Homebrew/test/testbottest.rb" + FileUtils.cp testbottest, HOMEBREW_CACHE_FORMULA + @test_default_formula = true + @added_formulae = [testbottest] + end + @formulae += @added_formulae + @modified_formula end @@ -702,7 +708,7 @@ module Homebrew @category = __method__ return if @skip_homebrew - if @tap.nil? && (@repository == HOMEBREW_REPOSITORY || Array(@formulae).empty?) + if !@tap && (@formulae.empty? || @test_default_formula) tests_args = ["--official-cmd-taps"] tests_args_no_compat = [] tests_args_no_compat << "--coverage" if ARGV.include?("--coverage") @@ -1047,16 +1053,8 @@ module Homebrew any_errors = false skip_homebrew = ARGV.include?("--skip-homebrew") if ARGV.named.empty? - current_test = if ARGV.include?("--test-default-formula") - # Build the default test formula. - HOMEBREW_CACHE_FORMULA.mkpath - FileUtils.cp "#{HOMEBREW_LIBRARY}/Homebrew/test/testbottest.rb", HOMEBREW_CACHE_FORMULA - Test.new("#{HOMEBREW_LIBRARY}/Homebrew/test/testbottest.rb", - :test_default_formula => true, :skip_homebrew => skip_homebrew) - else - # Otherwise just build the most recent commit. - Test.new("HEAD", :tap => tap, :skip_homebrew => skip_homebrew) - end + # With no arguments just build the most recent commit. + current_test = Test.new("HEAD", :tap => tap, :skip_homebrew => skip_homebrew) any_errors = !current_test.run tests << current_test else |
