diff options
| author | Adam Vandenberg | 2010-04-03 08:44:41 -0700 |
|---|---|---|
| committer | Adam Vandenberg | 2010-06-10 12:57:51 -0700 |
| commit | 1761ba66bfca0784d49de10bd684cc54d53fded8 (patch) | |
| tree | cd8ce5cb705d7e53a504262cc1914bb532d98be5 /Library/Homebrew/test | |
| parent | 914a068dc8cc9f84188a4a8b194336c632744058 (diff) | |
| download | brew-1761ba66bfca0784d49de10bd684cc54d53fded8.tar.bz2 | |
Failures during ./configure should mention config.log.
Diffstat (limited to 'Library/Homebrew/test')
| -rwxr-xr-x | Library/Homebrew/test/configure_fails.tar.gz | bin | 0 -> 196 bytes | |||
| -rw-r--r-- | Library/Homebrew/test/test_formula_install.rb | 12 | ||||
| -rw-r--r-- | Library/Homebrew/test/testball.rb | 15 | ||||
| -rw-r--r-- | Library/Homebrew/test/testing_env.rb | 16 |
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 Binary files differnew file mode 100755 index 000000000..8be00ee46 --- /dev/null +++ b/Library/Homebrew/test/configure_fails.tar.gz 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 |
