diff --git a/Library/Homebrew/cmd/test.rb b/Library/Homebrew/cmd/test.rb index 4a966d2ff2..3550727910 100644 --- a/Library/Homebrew/cmd/test.rb +++ b/Library/Homebrew/cmd/test.rb @@ -17,7 +17,7 @@ module Homebrew extend self end # Cannot test formulae without a test method - unless f.respond_to? :test + unless f.test_defined? ofail "#{f.name} defines no test" next end diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 740577ba74..2a9e4e704e 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -26,6 +26,7 @@ class Formula set_instance_variable :bottle set_instance_variable :devel set_instance_variable :head + set_instance_variable :test @name = name validate_variable :name @@ -590,12 +591,16 @@ public ret = nil mktemp do @testpath = Pathname.pwd - ret = instance_eval(&self.class.test) + ret = instance_eval(&@test) @testpath = nil end ret end + def test_defined? + not @test.nil? + end + private def stage @@ -642,7 +647,12 @@ private end def self.method_added method - raise 'You cannot override Formula.brew' if method == :brew + case method + when :brew + raise "You cannot override Formula#brew" + when :test + @test = method + end end class << self