Move version tests to separate file.

This commit is contained in:
Adam Vandenberg 2010-02-27 16:03:04 -08:00
parent d49230733f
commit 4c2a8a7f1c
4 changed files with 73 additions and 58 deletions

View File

@ -28,15 +28,6 @@ class BeerTasting < Test::Unit::TestCase
end
end
def test_no_version
assert_nil Pathname.new("http://example.com/blah.tar").version
assert_nil Pathname.new("arse").version
end
def test_bad_version
assert_raises(RuntimeError) {f=TestBadVersion.new}
end
FOOBAR='foo-bar'
def test_formula_funcs
classname=Formula.class_s(FOOBAR)

View File

@ -1,111 +1,138 @@
require 'testing_env'
require 'extend/ARGV' # needs to be after test/unit to avoid conflict with OptionsParser
ARGV.extend(HomebrewArgvExtension)
require 'formula'
require 'test/testball'
class MockFormula <Formula
def initialize url
@url=url
@homepage = 'http://example.com/'
super 'test'
end
end
class TestBadVersion <TestBall
@version="versions can't have spaces"
end
class VersionTests < Test::Unit::TestCase
def test_pathname_version
d=HOMEBREW_CELLAR+'foo-0.1.9'
d.mkpath
assert_equal '0.1.9', d.version
end
def test_no_version
assert_nil Pathname.new("http://example.com/blah.tar").version
assert_nil Pathname.new("arse").version
end
def test_bad_version
assert_raises(RuntimeError) {f=TestBadVersion.new}
end
def check pathname, version
r=MockFormula.new pathname
assert_equal version, r.version
end
def test_version_all_dots
r=MockFormula.new "http://example.com/foo.bar.la.1.14.zip"
assert_equal '1.14', r.version
check "http://example.com/foo.bar.la.1.14.zip", '1.14'
end
def test_version_underscore_separator
r=MockFormula.new "http://example.com/grc_1.1.tar.gz"
assert_equal '1.1', r.version
check "http://example.com/grc_1.1.tar.gz", '1.1'
end
def test_boost_version_style
r=MockFormula.new "http://example.com/boost_1_39_0.tar.bz2"
assert_equal '1.39.0', r.version
check "http://example.com/boost_1_39_0.tar.bz2", '1.39.0'
end
def test_erlang_version_style
r=MockFormula.new "http://erlang.org/download/otp_src_R13B.tar.gz"
assert_equal 'R13B', r.version
check "http://erlang.org/download/otp_src_R13B.tar.gz", 'R13B'
end
def test_p7zip_version_style
r=MockFormula.new "http://kent.dl.sourceforge.net/sourceforge/p7zip/p7zip_9.04_src_all.tar.bz2"
assert_equal '9.04', r.version
check "http://kent.dl.sourceforge.net/sourceforge/p7zip/p7zip_9.04_src_all.tar.bz2",
'9.04'
end
def test_gloox_beta_style
r=MockFormula.new "http://camaya.net/download/gloox-1.0-beta7.tar.bz2"
assert_equal '1.0-beta7', r.version
check "http://camaya.net/download/gloox-1.0-beta7.tar.bz2", '1.0-beta7'
end
def test_astyle_verson_style
r=MockFormula.new "http://kent.dl.sourceforge.net/sourceforge/astyle/astyle_1.23_macosx.tar.gz"
assert_equal '1.23', r.version
check "http://kent.dl.sourceforge.net/sourceforge/astyle/astyle_1.23_macosx.tar.gz",
'1.23'
end
def test_version_libvorbis
r=MockFormula.new "http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.2rc1.tar.bz2"
assert_equal '1.2.2rc1', r.version
check "http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.2rc1.tar.bz2",
'1.2.2rc1'
end
def test_version_dos2unix
r=MockFormula.new "http://www.sfr-fresh.com/linux/misc/dos2unix-3.1.tar.gz"
assert_equal '3.1', r.version
check "http://www.sfr-fresh.com/linux/misc/dos2unix-3.1.tar.gz", '3.1'
end
def test_version_internal_dash
r=MockFormula.new "http://example.com/foo-arse-1.1-2.tar.gz"
assert_equal '1.1-2', r.version
check "http://example.com/foo-arse-1.1-2.tar.gz", '1.1-2'
end
def test_version_single_digit
r=MockFormula.new "http://example.com/foo_bar.45.tar.gz"
assert_equal '45', r.version
check "http://example.com/foo_bar.45.tar.gz", '45'
end
def test_noseparator_single_digit
r=MockFormula.new "http://example.com/foo_bar45.tar.gz"
assert_equal '45', r.version
check "http://example.com/foo_bar45.tar.gz", '45'
end
def test_version_developer_that_hates_us_format
r=MockFormula.new "http://example.com/foo-bar-la.1.2.3.tar.gz"
assert_equal '1.2.3', r.version
check "http://example.com/foo-bar-la.1.2.3.tar.gz", '1.2.3'
end
def test_version_regular
r=MockFormula.new "http://example.com/foo_bar-1.21.tar.gz"
assert_equal '1.21', r.version
check "http://example.com/foo_bar-1.21.tar.gz", '1.21'
end
def test_version_github
r=MockFormula.new "http://github.com/lloyd/yajl/tarball/1.0.5"
assert_equal '1.0.5', r.version
check "http://github.com/lloyd/yajl/tarball/1.0.5", '1.0.5'
end
def test_version_github_with_high_patch_number
r=MockFormula.new "http://github.com/lloyd/yajl/tarball/v1.2.34"
assert_equal '1.2.34', r.version
check "http://github.com/lloyd/yajl/tarball/v1.2.34", '1.2.34'
end
def test_yet_another_version
r=MockFormula.new "http://example.com/mad-0.15.1b.tar.gz"
assert_equal '0.15.1b', r.version
check "http://example.com/mad-0.15.1b.tar.gz", '0.15.1b'
end
def test_lame_version_style
f=MockFormula.new 'http://kent.dl.sourceforge.net/sourceforge/lame/lame-398-2.tar.gz'
assert_equal '398-2', f.version
check 'http://kent.dl.sourceforge.net/sourceforge/lame/lame-398-2.tar.gz',
'398-2'
end
def test_ruby_version_style
f=MockFormula.new 'ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p243.tar.gz'
assert_equal '1.9.1-p243', f.version
check 'ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p243.tar.gz',
'1.9.1-p243'
end
def test_omega_version_style
f=MockFormula.new 'http://www.alcyone.com/binaries/omega/omega-0.80.2-src.tar.gz'
assert_equal '0.80.2', f.version
check 'http://www.alcyone.com/binaries/omega/omega-0.80.2-src.tar.gz',
'0.80.2'
end
def test_version_style_rc
f=MockFormula.new 'http://ftp.mozilla.org/pub/mozilla.org/js/js-1.8.0-rc1.tar.gz'
assert_equal '1.8.0-rc1', f.version
check 'http://ftp.mozilla.org/pub/mozilla.org/js/js-1.8.0-rc1.tar.gz',
'1.8.0-rc1'
end
def test_angband_version_style
f = MockFormula.new 'http://rephial.org/downloads/3.0/angband-3.0.9b-src.tar.gz'
assert_equal '3.0.9b', f.version
check 'http://rephial.org/downloads/3.0/angband-3.0.9b-src.tar.gz',
'3.0.9b'
end
end

View File

@ -9,6 +9,8 @@
# Bulk of the tests
ruby unittest.rb $*
ruby test_versions.rb $*
ruby test_inreplace.rb $*
# Test hardware sniffers

View File

@ -85,10 +85,6 @@ class TestZip <Formula
end
end
class TestBadVersion <TestBall
@version="versions can't have spaces"
end
class TestBallOverrideBrew <Formula
def initialize
super "foo"
@ -108,6 +104,5 @@ module ExtendArgvPlusYeast
end
ARGV.extend ExtendArgvPlusYeast
require 'test/test_versions'
require 'test/test_checksums'
require 'test/test_bucket'