aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
authorAdam Vandenberg2010-04-03 08:44:41 -0700
committerAdam Vandenberg2010-06-10 12:57:51 -0700
commit1761ba66bfca0784d49de10bd684cc54d53fded8 (patch)
treecd8ce5cb705d7e53a504262cc1914bb532d98be5 /Library/Homebrew/test
parent914a068dc8cc9f84188a4a8b194336c632744058 (diff)
downloadbrew-1761ba66bfca0784d49de10bd684cc54d53fded8.tar.bz2
Failures during ./configure should mention config.log.
Diffstat (limited to 'Library/Homebrew/test')
-rwxr-xr-xLibrary/Homebrew/test/configure_fails.tar.gzbin0 -> 196 bytes
-rw-r--r--Library/Homebrew/test/test_formula_install.rb12
-rw-r--r--Library/Homebrew/test/testball.rb15
-rw-r--r--Library/Homebrew/test/testing_env.rb16
4 files changed, 41 insertions, 2 deletions
diff --git a/Library/Homebrew/test/configure_fails.tar.gz b/Library/Homebrew/test/configure_fails.tar.gz
new file mode 100755
index 000000000..8be00ee46
--- /dev/null
+++ b/Library/Homebrew/test/configure_fails.tar.gz
Binary files differ
diff --git a/Library/Homebrew/test/test_formula_install.rb b/Library/Homebrew/test/test_formula_install.rb
index eb2dcb491..db1a2b103 100644
--- a/Library/Homebrew/test/test_formula_install.rb
+++ b/Library/Homebrew/test/test_formula_install.rb
@@ -21,6 +21,18 @@ class TestScriptFileFormula <ScriptFileFormula
end
+class ConfigureTests < Test::Unit::TestCase
+ def test_detect_failed_configure
+ f=ConfigureFails.new
+ begin
+ f.brew { f.install }
+ rescue ExecutionError => e
+ assert e.was_running_configure?
+ end
+ end
+end
+
+
class InstallTests < Test::Unit::TestCase
def temporary_install f
# Brew and install the given formula
diff --git a/Library/Homebrew/test/testball.rb b/Library/Homebrew/test/testball.rb
index 6393342e5..58af9d2b7 100644
--- a/Library/Homebrew/test/testball.rb
+++ b/Library/Homebrew/test/testball.rb
@@ -12,3 +12,18 @@ class TestBall <Formula
prefix.install "libexec"
end
end
+
+class ConfigureFails <Formula
+ # name parameter required for some Formula::factory
+ def initialize name=nil
+ @url="file:///#{TEST_FOLDER}/configure_fails.tar.gz"
+ @homepage = 'http://example.com/'
+ @version = '1.0.0'
+ @md5 = '9385e1b68ab8af68ac2c35423443159b'
+ super "configurefails"
+ end
+
+ def install
+ system "./configure"
+ end
+end
diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb
index 0f243607e..dbe3d1687 100644
--- a/Library/Homebrew/test/testing_env.rb
+++ b/Library/Homebrew/test/testing_env.rb
@@ -26,15 +26,21 @@ at_exit { HOMEBREW_PREFIX.parent.rmtree }
# Test fixtures and files can be found relative to this path
TEST_FOLDER = Pathname.new(ABS__FILE__).parent.realpath
-
+# Note: These exceptions duplicate those defined in globals.
+# Perhaps the same definitions should be used in both places.
class ExecutionError <RuntimeError
- attr :exit_status
+ attr :exit_status, :command
def initialize cmd, args = [], es = nil
+ @command = cmd
super "Failure while executing: #{cmd} #{pretty(args)*' '}"
@exit_status = es.exitstatus rescue 1
end
+ def was_running_configure?
+ @command == './configure'
+ end
+
private
def pretty args
@@ -49,6 +55,12 @@ class ExecutionError <RuntimeError
end
class BuildError <ExecutionError
+ attr :env
+
+ def initialize cmd, args = [], es = nil
+ super
+ @env = ENV.to_hash
+ end
end
require 'test/unit' # must be after at_exit