Switch test_bucket over to use testing_env.
This commit is contained in:
parent
e4766639dc
commit
5cbab370e4
@ -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.
|
||||||
|
|
||||||
|
|||||||
@ -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 $*
|
|
||||||
|
|||||||
@ -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'
|
|
||||||
Loading…
x
Reference in New Issue
Block a user