Skip to content

Commit

Permalink
Ignore default_path test cases for Ruby with custom configuration
Browse files Browse the repository at this point in the history
RubyGems provides means to override their defaults, such as
`Gem.default_dir` method. With such modified configuration, the
following errors might be observed:

~~~
    1) Failure:
  TestGem#test_default_path_vendor_dir [/home/runner/work/ruby/ruby/src/test/rubygems/test_gem.rb:612]:
  <["/home/runner/work/ruby/ruby/build/tmp/test_rubygems_20231110-59661-qs43ch/gemhome",
   "/home/runner/work/ruby/ruby/build/tmp/test_rubygems_20231110-59661-qs43ch/vendor/gems/3.3.0+0"]> expected but was
  <["/home/runner/work/ruby/ruby/build/tmp/test_rubygems_20231110-59661-qs43ch/gemhome",
   "/home/runner/work/ruby/ruby/build/tmp/test_rubygems_20231110-59661-qs43ch/vendor/gems/3.3.0+0",
   "/usr/local/lib/ruby/bundled_gems/3.3.0+0",
   "/usr/local/lib/ruby/default_gems/3.3.0+0"]>.
  make: *** [uncommon.mk:943: yes-test-all] Error 4

    2) Failure:
  TestGem#test_default_path_missing_vendor [/home/runner/work/ruby/ruby/src/test/rubygems/test_gem.rb:592]:
  <["/home/runner/work/ruby/ruby/build/tmp/test_rubygems_20231110-59661-c41yb7/gemhome"]> expected but was
  <["/home/runner/work/ruby/ruby/build/tmp/test_rubygems_20231110-59661-c41yb7/gemhome",
   "/usr/local/lib/ruby/bundled_gems/3.3.0+0",
   "/usr/local/lib/ruby/default_gems/3.3.0+0"]>.

    3) Failure:
  TestGem#test_default_path_user_home [/home/runner/work/ruby/ruby/src/test/rubygems/test_gem.rb:600]:
  <["/home/runner/work/ruby/ruby/build/tmp/test_rubygems_20231110-59661-5mm6uc/userhome/.local/share/gem/ruby/3.3.0+0",
   "/home/runner/work/ruby/ruby/build/tmp/test_rubygems_20231110-59661-5mm6uc/gemhome"]> expected but was
  <["/home/runner/work/ruby/ruby/build/tmp/test_rubygems_20231110-59661-5mm6uc/userhome/.local/share/gem/ruby/3.3.0+0",
   "/home/runner/work/ruby/ruby/build/tmp/test_rubygems_20231110-59661-5mm6uc/gemhome",
   "/usr/local/lib/ruby/bundled_gems/3.3.0+0",
   "/usr/local/lib/ruby/default_gems/3.3.0+0"]>.

    4) Failure:
  TestGem#test_default_path [/home/runner/work/ruby/ruby/src/test/rubygems/test_gem.rb:582]:
  <["/home/runner/work/ruby/ruby/build/tmp/test_rubygems_20231110-59661-kan9o5/gemhome"]> expected but was
  <["/home/runner/work/ruby/ruby/build/tmp/test_rubygems_20231110-59661-kan9o5/gemhome",
   "/usr/local/lib/ruby/bundled_gems/3.3.0+0",
   "/usr/local/lib/ruby/default_gems/3.3.0+0"]>.
~~~

Of course the `Gem.default_dir` could be stubbed, but testing stub
should not be the point.

Therefore, just detect if `Gem.default_dir` was customized and ignore
the test cases.
  • Loading branch information
voxik committed Nov 22, 2023
1 parent 8a6b180 commit ba2882b
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions test/rubygems/test_gem.rb
Expand Up @@ -574,6 +574,8 @@ def test_self_default_exec_format_jruby
end

def test_default_path
original_gem_default_dir?

vendordir(File.join(@tempdir, "vendor")) do
FileUtils.rm_rf Gem.user_home

Expand All @@ -584,6 +586,8 @@ def test_default_path
end

def test_default_path_missing_vendor
original_gem_default_dir?

vendordir(nil) do
FileUtils.rm_rf Gem.user_home

Expand All @@ -594,6 +598,8 @@ def test_default_path_missing_vendor
end

def test_default_path_user_home
original_gem_default_dir?

vendordir(File.join(@tempdir, "vendor")) do
expected = [Gem.user_dir, Gem.default_dir]

Expand All @@ -602,6 +608,8 @@ def test_default_path_user_home
end

def test_default_path_vendor_dir
original_gem_default_dir?

vendordir(File.join(@tempdir, "vendor")) do
FileUtils.mkdir_p Gem.vendor_dir

Expand Down Expand Up @@ -1796,4 +1804,10 @@ def util_remove_interrupt_command
def util_cache_dir
File.join Gem.dir, "cache"
end

def original_gem_default_dir?
unless Gem.method(:default_dir).source_location.first.match? "lib/rubygems/defaults.rb"
pend "Gem.default_dir differs from original RubyGems implementation"
end
end
end

0 comments on commit ba2882b

Please sign in to comment.