diff options
| author | Jack Nagel | 2014-01-11 19:59:26 -0600 |
|---|---|---|
| committer | Jack Nagel | 2014-01-11 20:00:34 -0600 |
| commit | 0f5a80a97b83b9aa90792dabac2ea3e9855a3fb3 (patch) | |
| tree | 31d1ea0d5cc339f0f1aeb79a8e37d9677fb78256 /Library | |
| parent | 92ac63fd9495e4fc75195191c36d5acebb8a6107 (diff) | |
| download | brew-0f5a80a97b83b9aa90792dabac2ea3e9855a3fb3.tar.bz2 | |
Fix tokenizing openssl style versions
Fixes Homebrew/homebrew#25736.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/test/test_versions.rb | 14 | ||||
| -rw-r--r-- | Library/Homebrew/test/testing_env.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/version.rb | 2 |
3 files changed, 19 insertions, 1 deletions
diff --git a/Library/Homebrew/test/test_versions.rb b/Library/Homebrew/test/test_versions.rb index 86092e2d4..241b47441 100644 --- a/Library/Homebrew/test/test_versions.rb +++ b/Library/Homebrew/test/test_versions.rb @@ -2,6 +2,8 @@ require 'testing_env' require 'version' class VersionTests < Test::Unit::TestCase + include VersionAssertions + def test_accepts_objects_responding_to_to_str value = stub(:to_str => '0.1') assert_equal '0.1', Version.new(value).to_s @@ -12,6 +14,18 @@ class VersionTests < Test::Unit::TestCase assert_raises(TypeError) { Version.new(1) } assert_raises(TypeError) { Version.new(:symbol) } end + + def test_tokens + assert_version_tokens %w{1 0 z23}, version('1.0z23') + assert_version_tokens %w{1 0 z23}, version('1.0.z23') + assert_version_tokens %w{1 0 z 23}, version('1.0.z.23') + assert_version_tokens %w{1 0 23 z}, version('1.0.23z') + assert_version_tokens %w{1 0 23 z}, version('1.0.23.z') + end + + def test_openssl_style_tokenization + assert_version_tokens %w{1 0 1 f}, version('1.0.1f') + end end class VersionComparisonTests < Test::Unit::TestCase diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb index 6ee03d10c..d77477bbc 100644 --- a/Library/Homebrew/test/testing_env.rb +++ b/Library/Homebrew/test/testing_env.rb @@ -97,6 +97,10 @@ module VersionAssertions def assert_version_nil url assert_nil Version.parse(url) end + + def assert_version_tokens tokens, version + assert_equal tokens, version.send(:tokens).map(&:to_s) + end end module Test::Unit::Assertions diff --git a/Library/Homebrew/version.rb b/Library/Homebrew/version.rb index a6e4fb807..159d3cb2a 100644 --- a/Library/Homebrew/version.rb +++ b/Library/Homebrew/version.rb @@ -43,7 +43,7 @@ class Version NULL_TOKEN = NullToken.new class StringToken < Token - PATTERN = /[a-z]+[0-9]+/i + PATTERN = /[a-z]+[0-9]*/i def initialize(value) @value = value.to_s |
