aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorAdam Vandenberg2010-02-14 21:23:38 -0800
committerAdam Vandenberg2010-04-06 08:27:10 -0700
commit298c74d147479186dbe1f99988ccda1de0747753 (patch)
tree12687ab2f8ce3c64c10c13ee35be25f88975ecb0 /Library
parent277e40bc7b25e3d336ac721b5e5d41c0aa330948 (diff)
downloadbrew-298c74d147479186dbe1f99988ccda1de0747753.tar.bz2
Add new "testing environment" include.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/test/testing_env.rb54
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