Skip to content

Commit ba2882b

Browse files
committed
Ignore default_path test cases for Ruby with custom configuration
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.
1 parent 8a6b180 commit ba2882b

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

test/rubygems/test_gem.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -574,6 +574,8 @@ def test_self_default_exec_format_jruby
574574
end
575575

576576
def test_default_path
577+
original_gem_default_dir?
578+
577579
vendordir(File.join(@tempdir, "vendor")) do
578580
FileUtils.rm_rf Gem.user_home
579581

@@ -584,6 +586,8 @@ def test_default_path
584586
end
585587

586588
def test_default_path_missing_vendor
589+
original_gem_default_dir?
590+
587591
vendordir(nil) do
588592
FileUtils.rm_rf Gem.user_home
589593

@@ -594,6 +598,8 @@ def test_default_path_missing_vendor
594598
end
595599

596600
def test_default_path_user_home
601+
original_gem_default_dir?
602+
597603
vendordir(File.join(@tempdir, "vendor")) do
598604
expected = [Gem.user_dir, Gem.default_dir]
599605

@@ -602,6 +608,8 @@ def test_default_path_user_home
602608
end
603609

604610
def test_default_path_vendor_dir
611+
original_gem_default_dir?
612+
605613
vendordir(File.join(@tempdir, "vendor")) do
606614
FileUtils.mkdir_p Gem.vendor_dir
607615

@@ -1796,4 +1804,10 @@ def util_remove_interrupt_command
17961804
def util_cache_dir
17971805
File.join Gem.dir, "cache"
17981806
end
1807+
1808+
def original_gem_default_dir?
1809+
unless Gem.method(:default_dir).source_location.first.match? "lib/rubygems/defaults.rb"
1810+
pend "Gem.default_dir differs from original RubyGems implementation"
1811+
end
1812+
end
17991813
end

0 commit comments

Comments
 (0)