summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Dyakonov <ilushkadyakonov@gmail.com>2022-08-01 09:54:21 +0100
committergit <svn-admin@ruby-lang.org>2022-08-03 06:56:36 +0900
commit4f00ee8d470f4ad5040c0df4cac2cf802b3cbdaf (patch)
tree0737a78681022211ad8241518e329e89c37f9bd3
parent20936eb3a95f3564e565f59228a35453ae94eee3 (diff)
[rubygems/rubygems] fix platform matching for index specs
https://github.com/rubygems/rubygems/commit/f087f1b590
-rw-r--r--lib/rubygems/resolver/index_specification.rb5
-rw-r--r--test/rubygems/test_gem_resolver_index_specification.rb2
-rw-r--r--test/rubygems/test_gem_resolver_installer_set.rb13
3 files changed, 17 insertions, 3 deletions
diff --git a/lib/rubygems/resolver/index_specification.rb b/lib/rubygems/resolver/index_specification.rb
index e8c3b35f7e..0fc758dfd3 100644
--- a/lib/rubygems/resolver/index_specification.rb
+++ b/lib/rubygems/resolver/index_specification.rb
@@ -21,7 +21,8 @@ class Gem::Resolver::IndexSpecification < Gem::Resolver::Specification
@name = name
@version = version
@source = source
- @platform = platform.to_s
+ @platform = Gem::Platform.new(platform.to_s)
+ @original_platform = platform.to_s
@spec = nil
end
@@ -91,7 +92,7 @@ class Gem::Resolver::IndexSpecification < Gem::Resolver::Specification
def spec # :nodoc:
@spec ||=
begin
- tuple = Gem::NameTuple.new @name, @version, @platform
+ tuple = Gem::NameTuple.new @name, @version, @original_platform
@source.fetch_spec tuple
end
diff --git a/test/rubygems/test_gem_resolver_index_specification.rb b/test/rubygems/test_gem_resolver_index_specification.rb
index 339445cb44..b479757bd5 100644
--- a/test/rubygems/test_gem_resolver_index_specification.rb
+++ b/test/rubygems/test_gem_resolver_index_specification.rb
@@ -26,7 +26,7 @@ class TestGemResolverIndexSpecification < Gem::TestCase
spec = Gem::Resolver::IndexSpecification.new(
set, "rails", version, source, Gem::Platform.local)
- assert_equal Gem::Platform.local.to_s, spec.platform
+ assert_equal Gem::Platform.local, spec.platform
end
def test_install
diff --git a/test/rubygems/test_gem_resolver_installer_set.rb b/test/rubygems/test_gem_resolver_installer_set.rb
index 8d84c28172..32e1faa28d 100644
--- a/test/rubygems/test_gem_resolver_installer_set.rb
+++ b/test/rubygems/test_gem_resolver_installer_set.rb
@@ -51,6 +51,19 @@ class TestGemResolverInstallerSet < Gem::TestCase
assert_equal %w[a-1], set.always_install.map {|s| s.full_name }
end
+ def test_add_always_install_index_spec_platform
+ a_1_local, a_1_local_gem = util_gem "a", 1 do |s|
+ s.platform = Gem::Platform.local
+ end
+
+ FileUtils.mv a_1_local_gem, @tempdir
+
+ set = Gem::Resolver::InstallerSet.new :both
+ set.add_always_install dep("a")
+
+ assert_equal [Gem::Platform.local], set.always_install.map {|s| s.platform }
+ end
+
def test_add_always_install_prerelease
spec_fetcher do |fetcher|
fetcher.gem "a", 1