aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/dev-cmd/test-bot.rb
diff options
context:
space:
mode:
authorMike McQuaid2016-09-13 08:18:43 +0100
committerMike McQuaid2016-09-13 08:18:43 +0100
commitc3a8701dc47f78f905369058a0f9cbe53ec340fe (patch)
treec0f972abb102eb1b14dd5ae8121fb44cd420f037 /Library/Homebrew/dev-cmd/test-bot.rb
parentee545fa19a46035ac5123cb6d3a09bacc0d6764d (diff)
downloadbrew-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.rb36
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