aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/dev-cmd/test.rb2
-rw-r--r--Library/Homebrew/formula_assertions.rb13
2 files changed, 14 insertions, 1 deletions
diff --git a/Library/Homebrew/dev-cmd/test.rb b/Library/Homebrew/dev-cmd/test.rb
index a8661179f..94cf1e331 100644
--- a/Library/Homebrew/dev-cmd/test.rb
+++ b/Library/Homebrew/dev-cmd/test.rb
@@ -83,7 +83,7 @@ module Homebrew
exec(*args)
end
end
- rescue MiniTest::Assertion => e
+ rescue Homebrew::Assertions::AssertionFailed => e
ofail "#{f.full_name}: failed"
puts e.message
rescue Exception => e
diff --git a/Library/Homebrew/formula_assertions.rb b/Library/Homebrew/formula_assertions.rb
index f81087a3d..49198cf43 100644
--- a/Library/Homebrew/formula_assertions.rb
+++ b/Library/Homebrew/formula_assertions.rb
@@ -3,6 +3,19 @@ module Homebrew
require "test/unit/assertions"
include ::Test::Unit::Assertions
+ # Custom name here for cross-version compatibility.
+ # In Ruby 2.0, Test::Unit::Assertions raise a MiniTest::Assertion,
+ # but they raise Test::Unit::AssertionFailedError in 2.3.
+ # If neither is defined, this might be a completely different
+ # version of Ruby.
+ if defined?(MiniTest::Assertion)
+ AssertionFailed = MiniTest::Assertion
+ elsif defined?(Test::Unit::AssertionFailedError)
+ AssertionFailed = Test::Unit::AssertionFailedError
+ else
+ raise NameError, "Unable to find an assertion class for this version of Ruby (#{RUBY_VERSION})"
+ end
+
# Returns the output of running cmd, and asserts the exit status
def shell_output(cmd, result = 0)
ohai cmd