Fix version misdetections for URLs with OS/archs

Closes Homebrew/homebrew#36308.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This commit is contained in:
Baptiste Fontaine 2015-01-28 09:28:20 +01:00 committed by Mike McQuaid
parent 5ac0446fd7
commit a9e8dfb996
2 changed files with 24 additions and 0 deletions

View File

@ -342,4 +342,18 @@ class VersionParsingTests < Homebrew::TestCase
assert_version_detected '2.4c', assert_version_detected '2.4c',
'http://loop-aes.sourceforge.net/aespipe/aespipe-v2.4c.tar.bz2' 'http://loop-aes.sourceforge.net/aespipe/aespipe-v2.4c.tar.bz2'
end end
def test_win_style
assert_version_detected '0.9.17',
'http://ftpmirror.gnu.org/libmicrohttpd/libmicrohttpd-0.9.17-w32.zip'
assert_version_detected '1.29',
'http://ftpmirror.gnu.org/libidn/libidn-1.29-win64.zip'
end
def test_with_arch
assert_version_detected '4.0.18-1',
'http://ftpmirror.gnu.org/mtools/mtools-4.0.18-1.i686.rpm'
assert_version_detected '2.8',
'http://ftpmirror.gnu.org/libtasn1/libtasn1-2.8-x86.zip'
end
end end

View File

@ -293,6 +293,16 @@ class Version
m = /-((?:\d+\.)*\d+-beta\d*)$/.match(stem) m = /-((?:\d+\.)*\d+-beta\d*)$/.match(stem)
return m.captures.first unless m.nil? return m.captures.first unless m.nil?
# e.g. http://ftpmirror.gnu.org/libidn/libidn-1.29-win64.zip
# e.g. http://ftpmirror.gnu.org/libmicrohttpd/libmicrohttpd-0.9.17-w32.zip
m = /-(\d+\.\d+(?:\.\d+)?)-w(?:in)?(?:32|64)$/.match(stem)
return m.captures.first unless m.nil?
# e.g. http://ftpmirror.gnu.org/mtools/mtools-4.0.18-1.i686.rpm
# e.g. http://ftpmirror.gnu.org/libtasn1/libtasn1-2.8-x86.zip
m = /-(\d+\.\d+(?:\.\d+)?(?:-\d+)?)[-_.](?:i686|x86(?:[-_](?:32|64))?)$/.match(stem)
return m.captures.first unless m.nil?
# e.g. foobar4.5.1 # e.g. foobar4.5.1
m = /((?:\d+\.)*\d+)$/.match(stem) m = /((?:\d+\.)*\d+)$/.match(stem)
return m.captures.first unless m.nil? return m.captures.first unless m.nil?