diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2022-09-07 23:01:03 +0200 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2022-09-09 19:38:52 +0900 |
commit | b350053ae47dc4653ecb85f64360cf6eafba6323 (patch) | |
tree | 7a4b35689f0e41e16b9a3c1b9e6c38df1d359a7a /test/rubygems/test_gem_resolver.rb | |
parent | cfe10e482e0657195cadf01f0be72e11b7fb62b4 (diff) | |
download | ruby-b350053ae47dc4653ecb85f64360cf6eafba6323.tar.gz |
[rubygems/rubygems] Fix resolution on non-musl platforms
Gems without specific platform were being preferred over matching
platform specific gems.
https://github.com/rubygems/rubygems/commit/37b95b9159
Diffstat (limited to 'test/rubygems/test_gem_resolver.rb')
-rw-r--r-- | test/rubygems/test_gem_resolver.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_resolver.rb b/test/rubygems/test_gem_resolver.rb index c816d5484b..54497c6e4f 100644 --- a/test/rubygems/test_gem_resolver.rb +++ b/test/rubygems/test_gem_resolver.rb @@ -391,6 +391,39 @@ class TestGemResolver < Gem::TestCase end end + def test_pick_generic_linux_variants_on_musl_linux + util_set_arch "aarch64-linux-musl" do + is = Gem::Resolver::IndexSpecification + + linux = Gem::Platform.new("aarch64-linux") + + spec_fetcher do |fetcher| + fetcher.spec "libv8-node", "15.14.0.1" do |s| + s.platform = linux + end + + fetcher.spec "libv8-node", "15.14.0.1" + end + + v15 = v("15.14.0.1") + source = Gem::Source.new @gem_repo + + s = set + + v15_ruby = is.new s, "libv8-node", v15, source, Gem::Platform::RUBY + v15_linux = is.new s, "libv8-node", v15, source, linux.to_s + + s.add v15_linux + s.add v15_ruby + + ad = make_dep "libv8-node", "= 15.14.0.1" + + res = Gem::Resolver.new([ad], s) + + assert_resolves_to [v15_linux.spec], res + end + end + def test_only_returns_spec_once a1 = util_spec "a", "1", "c" => "= 1" b1 = util_spec "b", "1", "c" => "= 1" |