diff options
| author | Mike McQuaid | 2016-09-13 08:18:43 +0100 |
|---|---|---|
| committer | Mike McQuaid | 2016-09-13 08:18:43 +0100 |
| commit | c3a8701dc47f78f905369058a0f9cbe53ec340fe (patch) | |
| tree | c0f972abb102eb1b14dd5ae8121fb44cd420f037 /Library/Homebrew/dev-cmd/test-bot.rb | |
| parent | ee545fa19a46035ac5123cb6d3a09bacc0d6764d (diff) | |
| download | brew-c3a8701dc47f78f905369058a0f9cbe53ec340fe.tar.bz2 | |
test-bot: default to building testbottest.
This provides an integration test for `test-bot.rb` by performing
compilation of an actual formula.
Diffstat (limited to 'Library/Homebrew/dev-cmd/test-bot.rb')
| -rw-r--r-- | Library/Homebrew/dev-cmd/test-bot.rb | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/Library/Homebrew/dev-cmd/test-bot.rb b/Library/Homebrew/dev-cmd/test-bot.rb index 2d8500d9b..99b4279ba 100644 --- a/Library/Homebrew/dev-cmd/test-bot.rb +++ b/Library/Homebrew/dev-cmd/test-bot.rb @@ -62,6 +62,9 @@ #: 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 `--ci-master` is passed, use the Homebrew master branch CI #: options. #: @@ -268,11 +271,14 @@ 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 @@ -695,7 +701,7 @@ module Homebrew @category = __method__ return if @skip_homebrew - if @tap.nil? && Array(@formulae).empty? + if @tap.nil? && (@test_default_formula || Array(@formulae).empty?) tests_args = ["--official-cmd-taps"] tests_args_no_compat = [] tests_args_no_compat << "--coverage" if ARGV.include?("--coverage") @@ -1006,12 +1012,18 @@ module Homebrew if ARGV.include?("--ci-master") || ARGV.include?("--ci-pr") \ || ARGV.include?("--ci-testing") ARGV << "--cleanup" if ENV["JENKINS_HOME"] - ARGV << "--junit" << "--local" + ARGV << "--junit" << "--local" << "--test-default-formula" end + if ARGV.include? "--ci-master" ARGV << "--fast" end + # TODO: refactor bottle code so this isn't needed. + if ARGV.include? "--test-default-formula" + ARGV << "--no-bottle" + end + if ARGV.include? "--local" ENV["HOMEBREW_CACHE"] = "#{ENV["HOME"]}/Library/Caches/Homebrew" mkdir_p ENV["HOMEBREW_CACHE"] @@ -1039,22 +1051,28 @@ module Homebrew any_errors = false skip_homebrew = ARGV.include?("--skip-homebrew") if ARGV.named.empty? - # With no arguments just build the most recent commit. - head_test = Test.new("HEAD", :tap => tap, :skip_homebrew => skip_homebrew) - any_errors = !head_test.run - tests << head_test + current_test = if ARGV.include?("--test-default-formula") + # Build the default test 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 + any_errors = !current_test.run + tests << current_test else ARGV.named.each do |argument| test_error = false begin - test = Test.new(argument, :tap => tap, :skip_homebrew => skip_homebrew) + current_test = Test.new(argument, :tap => tap, :skip_homebrew => skip_homebrew) skip_homebrew = true rescue ArgumentError => e test_error = true ofail e.message else - test_error = !test.run - tests << test + test_error = !current_test.run + tests << current_test end any_errors ||= test_error end |
