summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_version.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_version.rb')
-rw-r--r--test/rubygems/test_gem_version.rb67
1 files changed, 36 insertions, 31 deletions
diff --git a/test/rubygems/test_gem_version.rb b/test/rubygems/test_gem_version.rb
index 7b382809c9..cf771bc5a1 100644
--- a/test/rubygems/test_gem_version.rb
+++ b/test/rubygems/test_gem_version.rb
@@ -1,8 +1,7 @@
# frozen_string_literal: true
-require 'rubygems/test_case'
-require "rubygems/version"
-require "minitest/benchmark"
+require_relative "helper"
+require "rubygems/version"
class TestGemVersion < Gem::TestCase
class V < ::Gem::Version
@@ -34,12 +33,19 @@ class TestGemVersion < Gem::TestCase
def test_class_create
real = Gem::Version.new(1.0)
- assert_same real, Gem::Version.create(real)
- assert_nil Gem::Version.create(nil)
+ assert_same real, Gem::Version.create(real)
+
+ expected = "nil versions are discouraged and will be deprecated in Rubygems 4\n"
+ actual_stdout, actual_stderr = capture_output do
+ assert_nil Gem::Version.create(nil)
+ end
+ assert_empty actual_stdout
+ assert_equal(expected, actual_stderr)
+
assert_equal v("5.1"), Gem::Version.create("5.1")
- ver = '1.1'.freeze
- assert_equal v('1.1'), Gem::Version.create(ver)
+ ver = "1.1"
+ assert_equal v("1.1"), Gem::Version.create(ver)
end
def test_class_correct
@@ -47,14 +53,16 @@ class TestGemVersion < Gem::TestCase
assert_equal false, Gem::Version.correct?("an incorrect version")
expected = "nil versions are discouraged and will be deprecated in Rubygems 4\n"
- assert_output nil, expected do
+ actual_stdout, actual_stderr = capture_output do
Gem::Version.correct?(nil)
end
+ assert_empty actual_stdout
+ assert_equal(expected, actual_stderr)
end
def test_class_new_subclass
- v1 = Gem::Version.new '1'
- v2 = V.new '1'
+ v1 = Gem::Version.new "1"
+ v2 = V.new "1"
refute_same v1, v2
end
@@ -81,7 +89,7 @@ class TestGemVersion < Gem::TestCase
end
def test_initialize
- ["1.0", "1.0 ", " 1.0 ", "1.0\n", "\n1.0\n", "1.0".freeze].each do |good|
+ ["1.0", "1.0 ", " 1.0 ", "1.0\n", "\n1.0\n", "1.0"].each do |good|
assert_version_equal "1.0", good
end
@@ -100,7 +108,7 @@ class TestGemVersion < Gem::TestCase
invalid_versions << "2.3422222.222.222222222.22222.ads0as.dasd0.ddd2222.2.qd3e."
invalid_versions.each do |invalid|
- e = assert_raises ArgumentError, invalid do
+ e = assert_raise ArgumentError, invalid do
Gem::Version.new invalid
end
@@ -108,15 +116,6 @@ class TestGemVersion < Gem::TestCase
end
end
- def bench_anchored_version_pattern
- assert_performance_linear 0.5 do |count|
- version_string = count.times.map {|i| "0" * i.succ }.join(".") << "."
- version_string =~ Gem::Version::ANCHORED_VERSION_PATTERN
- end
- rescue RegexpError
- skip "It fails to allocate the memory for regex pattern of Gem::Version::ANCHORED_VERSION_PATTERN"
- end
-
def test_empty_version
["", " ", " "].each do |empty|
assert_equal "0", Gem::Version.new(empty).version
@@ -129,10 +128,10 @@ class TestGemVersion < Gem::TestCase
assert_prerelease "22.1.50.0.d"
assert_prerelease "1.2.d.42"
- assert_prerelease '1.A'
+ assert_prerelease "1.A"
- assert_prerelease '1-1'
- assert_prerelease '1-a'
+ assert_prerelease "1-1"
+ assert_prerelease "1-a"
refute_prerelease "1.2.0"
refute_prerelease "2.9"
@@ -163,6 +162,10 @@ class TestGemVersion < Gem::TestCase
assert_equal(-1, v("5.a") <=> v("5.0.0.rc2"))
assert_equal(1, v("5.x") <=> v("5.0.0.rc2"))
+ assert_equal(0, v("1.9.3") <=> "1.9.3")
+ assert_equal(1, v("1.9.3") <=> "1.9.2.99")
+ assert_equal(-1, v("1.9.3") <=> "1.9.3.1")
+
assert_nil v("1.0") <=> "whatever"
end
@@ -204,7 +207,7 @@ class TestGemVersion < Gem::TestCase
# modifying the segments of a version should not affect the segments of the cached version object
def test_segments
- v('9.8.7').segments[2] += 1
+ v("9.8.7").segments[2] += 1
refute_version_equal "9.8.8", "9.8.7"
assert_equal [9,8,7], v("9.8.7").segments
@@ -217,10 +220,10 @@ class TestGemVersion < Gem::TestCase
end
def test_frozen_version
- v = v('1.freeze.test').freeze
- assert_less_than v, v('1')
- assert_version_equal v('1'), v.release
- assert_version_equal v('2'), v.bump
+ v = v("1.freeze.test").freeze
+ assert_less_than v, v("1")
+ assert_version_equal v("1"), v.release
+ assert_version_equal v("2"), v.bump
end
# Asserts that +version+ is a prerelease.
@@ -266,7 +269,8 @@ class TestGemVersion < Gem::TestCase
# Assert that two versions are eql?. Checks both directions.
def assert_version_eql(first, second)
- first, second = v(first), v(second)
+ first = v(first)
+ second = v(second)
assert first.eql?(second), "#{first} is eql? #{second}"
assert second.eql?(first), "#{second} is eql? #{first}"
end
@@ -287,7 +291,8 @@ class TestGemVersion < Gem::TestCase
# directions.
def refute_version_eql(first, second)
- first, second = v(first), v(second)
+ first = v(first)
+ second = v(second)
refute first.eql?(second), "#{first} is NOT eql? #{second}"
refute second.eql?(first), "#{second} is NOT eql? #{first}"
end