Switch test_bucket over to use testing_env.

This commit is contained in:
Adam Vandenberg 2010-03-16 22:13:18 -07:00
parent e4766639dc
commit 5cbab370e4
3 changed files with 48 additions and 119 deletions

View File

@ -1,6 +1,43 @@
require 'testing_env'
require 'extend/ARGV' # needs to be after test/unit to avoid conflict with OptionsParser require 'extend/ARGV' # needs to be after test/unit to avoid conflict with OptionsParser
ARGV.extend(HomebrewArgvExtension) ARGV.extend(HomebrewArgvExtension)
require 'test/testball'
require 'utils'
require 'brew.h'
class MockFormula <Formula
def initialize url
@url=url
@homepage = 'http://example.com/'
super 'test'
end
end
class MostlyAbstractFormula <Formula
@url=''
@homepage = 'http://example.com/'
end
class TestZip <Formula
def initialize
zip=HOMEBREW_CACHE.parent+'test-0.1.zip'
Kernel.system '/usr/bin/zip', '-0', zip, ABS__FILE__
@url="file://#{zip}"
@homepage = 'http://example.com/'
super 'testzip'
end
end
class TestBallOverrideBrew <Formula
def initialize
super "foo"
end
def brew
end
end
# All other tests so far -- feel free to break them out into # All other tests so far -- feel free to break them out into
# separate TestCase classes. # separate TestCase classes.

View File

@ -5,36 +5,24 @@
# Note: "formula_test" is omitted; these aren't unit tests but sanity checks # Note: "formula_test" is omitted; these aren't unit tests but sanity checks
# on the real formulae. # on the real formulae.
# #
# Run as:
# ./tests -- --skip-update
# to omit the update tests which only seem to work for mxcl
#
# Bulk of the tests # Feel free to split out test_bucket
ruby unittest.rb $* ruby test_bucket.rb $*
ruby test_versions.rb $* ruby test_versions.rb $*
ruby test_checksums.rb $* ruby test_checksums.rb $*
ruby test_inreplace.rb $* ruby test_inreplace.rb $*
# Test hardware sniffers
ruby test_hardware.rb $* ruby test_hardware.rb $*
# Test formula installs
ruby test_formula_install.rb $* ruby test_formula_install.rb $*
ruby test_patching.rb $*
ruby test_external_deps.rb $*
ruby test_pathname_install.rb $*
ruby test_utils.rb $*
ruby test_ARGV.rb $*
# Update tests (only seem to work for mxcl) # Update tests (only seem to work for mxcl)
ruby test_updater.rb $* ruby test_updater.rb $*
# Patching tests
ruby test_patching.rb $*
# External dependency tests
ruby test_external_deps.rb $*
# Test Pathname.install
ruby test_pathname_install.rb $*
# Test utility functions
ruby test_utils.rb $*
# Test ARGV extensions
ruby test_ARGV.rb $*

View File

@ -1,96 +0,0 @@
#!/usr/bin/ruby
# 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.
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 }
require 'utils'
require 'formula'
require 'keg'
require 'brew.h'
# for some reason our utils.rb safe_system behaves completely differently
# during these tests. This is worrying for sure.
def safe_system *args
Kernel.system *args
end
class ExecutionError <RuntimeError
attr :status
def initialize cmd, args=[], status=nil
super "Failure while executing: #{cmd} #{args*' '}"
@status = status
end
end
class BuildError <ExecutionError; end
require 'test/unit' # must be after at_exit
require 'extend/ARGV' # needs to be after test/unit to avoid conflict with OptionsParser
ARGV.extend(HomebrewArgvExtension)
class MockFormula <Formula
def initialize url
@url=url
@homepage = 'http://example.com/'
super 'test'
end
end
class MostlyAbstractFormula <Formula
@url=''
@homepage = 'http://example.com/'
end
class TestBall <Formula
# name parameter required for some Formula::factory
def initialize name=nil
@url="file:///#{Pathname.new(ABS__FILE__).parent.realpath}/testball-0.1.tbz"
@homepage = 'http://example.com/'
super "testball"
end
def install
prefix.install "bin"
prefix.install "libexec"
end
end
class TestZip <Formula
def initialize
zip=HOMEBREW_CACHE.parent+'test-0.1.zip'
Kernel.system '/usr/bin/zip', '-0', zip, ABS__FILE__
@url="file://#{zip}"
@homepage = 'http://example.com/'
super 'testzip'
end
end
class TestBallOverrideBrew <Formula
def initialize
super "foo"
end
def brew
end
end
require 'test/test_bucket'