aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorJack Nagel2014-09-18 14:16:07 -0500
committerJack Nagel2014-09-18 14:16:07 -0500
commit79a6e59e6e7af943b98ecc58901d0a45592a139e (patch)
treea76519b15637380db9f84d5b0c51cb555256d569 /Library/Homebrew
parent1abcb0b348c0d0b07ee92ed274c5d97550b39ee4 (diff)
downloadbrew-79a6e59e6e7af943b98ecc58901d0a45592a139e.tar.bz2
Implement `brew test --debug`
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/cmd/test.rb4
-rw-r--r--Library/Homebrew/debrew.rb4
-rw-r--r--Library/Homebrew/formula.rb15
3 files changed, 15 insertions, 8 deletions
diff --git a/Library/Homebrew/cmd/test.rb b/Library/Homebrew/cmd/test.rb
index b47a85ed4..630450744 100644
--- a/Library/Homebrew/cmd/test.rb
+++ b/Library/Homebrew/cmd/test.rb
@@ -1,5 +1,6 @@
require "extend/ENV"
require "timeout"
+require "debrew"
module Homebrew
TEST_TIMEOUT_SECONDS = 5*60
@@ -50,11 +51,12 @@ module Homebrew
f.extend(Test::Unit::Assertions)
f.extend(Homebrew::Assertions)
+ f.extend(Debrew::Formula) if ARGV.debug?
begin
# tests can also return false to indicate failure
Timeout::timeout TEST_TIMEOUT_SECONDS do
- raise if f.test == false
+ raise if f.run_test == false
end
rescue FailedAssertion => e
ofail "#{f.name}: failed"
diff --git a/Library/Homebrew/debrew.rb b/Library/Homebrew/debrew.rb
index fbddadbd5..f3d3dffa3 100644
--- a/Library/Homebrew/debrew.rb
+++ b/Library/Homebrew/debrew.rb
@@ -21,6 +21,10 @@ module Debrew
def install
Debrew.debrew { super }
end
+
+ def test
+ Debrew.debrew { super }
+ end
end
module Resource
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 23087ada6..261d3c5a0 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -473,21 +473,23 @@ class Formula
active_spec.verify_download_integrity(fn)
end
- def test
+ def run_test
self.build = Tab.for_formula(self)
- ret = nil
mktemp do
@testpath = Pathname.pwd
- ret = instance_eval(&self.class.test)
- @testpath = nil
+ test
end
- ret
+ ensure
+ @testpath = nil
end
def test_defined?
false
end
+ def test
+ end
+
protected
# Pretty titles the command and buffers stdout/stderr
@@ -769,9 +771,8 @@ class Formula
end
def test &block
- return @test unless block_given?
define_method(:test_defined?) { true }
- @test = block
+ define_method(:test, &block)
end
end
end