brew-test-bot: handle failing devel requirements.

This commit is contained in:
Mike McQuaid 2014-04-30 13:07:06 +01:00
parent 116c2b06a8
commit ec852045b1

View File

@ -249,6 +249,28 @@ class Test
puts "#{Tty.blue}==>#{Tty.white} SKIPPING: #{formula}#{Tty.reset}" puts "#{Tty.blue}==>#{Tty.white} SKIPPING: #{formula}#{Tty.reset}"
end end
def satisfied_requirements? formula_object, spec=:stable
requirements = if spec == :stable
formula_object.recursive_requirements
else
formula_object.send(spec).requirements
end
unsatisfied_requirements = requirements.reject do |requirement|
requirement.satisfied? || requirement.default_formula?
end
if unsatisfied_requirements.empty?
true
else
formula = formula_object.name
formula += " (#{spec})" unless spec == :stable
skip formula
unsatisfied_requirements.each {|r| puts r.message}
false
end
end
def setup def setup
@category = __method__ @category = __method__
return if ARGV.include? "--skip-setup" return if ARGV.include? "--skip-setup"
@ -265,13 +287,7 @@ class Test
dependencies -= `brew list`.split("\n") dependencies -= `brew list`.split("\n")
dependencies = dependencies.join(' ') dependencies = dependencies.join(' ')
formula_object = Formula.factory(formula) formula_object = Formula.factory(formula)
requirements = formula_object.recursive_requirements return unless satisfied_requirements? formula_object
unsatisfied_requirements = requirements.reject {|r| r.satisfied? or r.default_formula?}
unless unsatisfied_requirements.empty?
skip formula
unsatisfied_requirements.each {|r| puts r.message}
return
end
installed_gcc = false installed_gcc = false
begin begin
@ -314,7 +330,9 @@ class Test
test "brew test --verbose #{formula}" if formula_object.test_defined? test "brew test --verbose #{formula}" if formula_object.test_defined?
test "brew uninstall --force #{formula}" test "brew uninstall --force #{formula}"
end end
if formula_object.devel and not ARGV.include? '--HEAD'
if formula_object.devel && !ARGV.include?('--HEAD') \
&& satisfied_requirements?(formula_object, :devel)
test "brew fetch --retry --devel#{formula_fetch_options} #{formula}" test "brew fetch --retry --devel#{formula_fetch_options} #{formula}"
test "brew install --devel --verbose #{formula}" test "brew install --devel --verbose #{formula}"
devel_install_passed = steps.last.passed? devel_install_passed = steps.last.passed?