diff --git a/spec/bundler/bundled_gems_spec.rb b/spec/bundler/bundled_gems_spec.rb index 66e90a11a5..4764ed0501 100644 --- a/spec/bundler/bundled_gems_spec.rb +++ b/spec/bundler/bundled_gems_spec.rb @@ -193,6 +193,36 @@ RSpec.describe "bundled_gems.rb" do # test_warn_bootsnap_rubyarchdir_gem.rb:14: warning: ... end + it "Show warning with bootsnap and some gem in Gemfile" do + build_lib "childprocess", "5.0.0" do |s| + # bootsnap expand required feature to full path + # require 'logger' + rubylibpath = File.expand_path(File.join(__dir__, "..", "..", "lib")) + s.write "lib/childprocess.rb", "require '#{rubylibpath}/logger'" + end + + script <<-RUBY + gemfile do + source "https://rubygems.org" + # gem "bootsnap", require: false + path "#{lib_path}" do + gem "childprocess", "5.0.0" + end + end + + # require 'bootsnap' + # Bootsnap.setup(cache_dir: 'tmp/cache') + + # bootsnap expand required feature to full path + # require 'childprocess' + require Gem.loaded_specs["childprocess"].full_gem_path + '/lib/childprocess' + RUBY + + expect(err).to include(/logger was loaded from (.*) from Ruby 3.5.0/) + # TODO: We should assert caller location like below: + # $GEM_HOME/gems/childprocess-5.0.0/lib/childprocess.rb:7: warning: + end + it "Don't show warning fiddle/import when fiddle on Gemfile" do build_lib "fiddle", "1.0.0" do |s| s.write "lib/fiddle.rb", "puts 'fiddle'" diff --git a/tool/test_for_warn_bundled_gems/test.sh b/tool/test_for_warn_bundled_gems/test.sh index fe9ea00f5d..c924d7388a 100755 --- a/tool/test_for_warn_bundled_gems/test.sh +++ b/tool/test_for_warn_bundled_gems/test.sh @@ -3,7 +3,3 @@ echo "* Show warning with zeitwerk" ruby test_warn_zeitwerk.rb echo - -echo "* Show warning with bootsnap and some gem in Gemfile" -ruby test_warn_bootsnap_and_gem.rb -echo diff --git a/tool/test_for_warn_bundled_gems/test_warn_bootsnap_and_gem.rb b/tool/test_for_warn_bundled_gems/test_warn_bootsnap_and_gem.rb deleted file mode 100644 index 00fd7709e9..0000000000 --- a/tool/test_for_warn_bundled_gems/test_warn_bootsnap_and_gem.rb +++ /dev/null @@ -1,14 +0,0 @@ -require "bundler" -Bundler::Definition.no_lock = true - -require "bundler/inline" - -gemfile do - source "https://rubygems.org" - gem "bootsnap", require: false - gem "childprocess", "5.0.0", require: false # Has undeclared logger dependency -end - -ENV["BOOTSNAP_CACHE_DIR"] ||= "tmp/cache/bootsnap" -require "bootsnap/setup" -require "childprocess"