diff options
| author | Adam Vandenberg | 2010-02-14 21:23:38 -0800 |
|---|---|---|
| committer | Adam Vandenberg | 2010-04-06 08:27:10 -0700 |
| commit | 298c74d147479186dbe1f99988ccda1de0747753 (patch) | |
| tree | 12687ab2f8ce3c64c10c13ee35be25f88975ecb0 /Library | |
| parent | 277e40bc7b25e3d336ac721b5e5d41c0aa330948 (diff) | |
| download | brew-298c74d147479186dbe1f99988ccda1de0747753.tar.bz2 | |
Add new "testing environment" include.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/test/testing_env.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb new file mode 100644 index 000000000..0f243607e --- /dev/null +++ b/Library/Homebrew/test/testing_env.rb @@ -0,0 +1,54 @@ +# This software is in the public domain, furnished "as is", without technical +# support, and with no warranty, express or implied, as to its usefulness for +# any purpose. + +# Require this file to build a testing environment. + +ABS__FILE__=File.expand_path(__FILE__) + +$:.push(File.expand_path(__FILE__+'/../..')) +require 'extend/pathname' + +# these are defined in global.rb, but we don't want to break our actual +# homebrew tree, and we do want to test everything :) +HOMEBREW_PREFIX=Pathname.new '/private/tmp/testbrew/prefix' +HOMEBREW_REPOSITORY=HOMEBREW_PREFIX +HOMEBREW_CACHE=HOMEBREW_PREFIX.parent+"cache" +HOMEBREW_CELLAR=HOMEBREW_PREFIX.parent+"cellar" +HOMEBREW_USER_AGENT="Homebrew" +HOMEBREW_WWW='http://example.com' +MACOS_VERSION=10.6 + +(HOMEBREW_PREFIX+'Library/Formula').mkpath +Dir.chdir HOMEBREW_PREFIX +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 + + +class ExecutionError <RuntimeError + attr :exit_status + + def initialize cmd, args = [], es = nil + super "Failure while executing: #{cmd} #{pretty(args)*' '}" + @exit_status = es.exitstatus rescue 1 + end + + private + + def pretty args + args.collect do |arg| + if arg.to_s.include? ' ' + "'#{ arg.gsub "'", "\\'" }'" + else + arg + end + end + end +end + +class BuildError <ExecutionError +end + +require 'test/unit' # must be after at_exit |
